iT邦幫忙

2024 iThome 鐵人賽

DAY 4
1

前言

嗨各位,Kazma 又來了!
今天的主題是 Sub-GHz,個人覺得是小海豚最強大的功能之一,所以可能會有三到四天都在介紹這個技術跟他的應用,同時這也是他受到電信管制射頻器材管理辦法限制的原因,沒辦法大量進口,甚至需要簽自用切結書,不能作為商業用途,原文如下:

根據電信管制射頻器材管理辦法第 18 條第 1 項第 2 款:
二、除衛星行動地球電臺及衛星小型地球電臺外,輸入供自用之無線電信終端設備或低功率射頻電機,應填寫自用切結書,切結僅供自用,不作為販賣或其他商業用途,並檢附符合相關技術規範之證明文件;其輸入數量限制如下:
(一)自行攜帶輸入者,一次至多不得逾五部。
(二)郵寄輸入或其他非自行攜帶方式輸入者,一次至多不得逾二部。
(三)同一自然人或法人輸入同廠牌型號,一年內以十部為限。

那也因為能力越大責任越大,所以每天都要放一次資安倫理宣導。

資安倫理宣導

請注意,透過 Flipper Zero 學習的資訊技術與知識,目的在於提升個人的技術能力和資安意識。我們強烈呼籲大家,絕對不要使用所學知識從事任何違法行為。您的合法使用是我們的期望,也是您自身責任的一部分。

Sub-GHz 介紹

cover
圖片來源:https://docs.flipper.net
首先,我們先從這個名詞開始介紹。
GHz 是一種頻率的單位,代表的是千兆赫茲,同時一千兆赫茲等於十億赫茲。而顧名思義 Sub-GHz 代表的就是低於千兆赫茲,也就是說這個名詞本身代表的其實是一個頻率範圍。所以舉一反三有一個 5G 網路中的專有名詞: Sub-6GHz 代表的就是六千兆赫茲以下的頻段,不過這不在今天的討論範圍。
而我們知道光速是一個常數,所以根據光速還有波長跟頻率的關係式我們可以得知,如果使用 Sub-GHz 這種相對低頻率的波段,波長就會相對應得更長,以至於他有以下這些好處:

  • 傳輸距離長
  • 穿透力強
  • 功率低
  • 不容易被干擾

這也是為什麼使用無線電波比較不容易受到障礙物影響,也跟我們今天的主題--穿牆術扣合。

Flipper Sub-GHz Menu

menu
圖片來源:https://docs.flipper.net
上面這張圖片是 flipper 的 Sub-GHz 選單,快速跟各位介紹上面的功能:

  • Read:
    • 讀取,會嘗試根據已知的協議去 decode,如果協議是靜態的,我們就可以把它存下來
  • Read Raw:
    • 直接讀取原始訊號而不會去做解碼。
  • Saved:
    • 列出儲存的訊號,可以模擬或是改名。
  • Add Manually:
    • 可以配對讀取裝置。
  • Frequency Analyzer:
    • 可以偵測訊號的頻率。
  • Region Information:
    • 會列出當地允許的頻率範圍。
  • Radio Settings:
    • 可以去更換成外部天線如果我們有裝的話,還有其他相關設定。

Flipper Sub-GHz Hardware

hardware
圖片來源:https://docs.flipper.net
Flipper 使用了 CC1101 這款由 Texas Instruments 開發的低功耗無線收發器,還有配備能夠收發五十公尺訊號的無線電天線,這組芯片和天線都是專門設計來處理在 300 MHz 到 348 MHz、387 MHz 到 464 MHz 以及 779 MHz 到 928 MHz 的信號。

Frequency Analyzer

我們可以透過這個功能分析目標訊號的頻率。
Flipper Zero 會顯示大於閾值且強度最高的訊號,預設的閾值是 RSSI(Received Signal Strength Indicator)大於 -90 dBm,而 Momentum 把這個 Config 改成可以直接透過左右鍵去調整閾值大小,如下圖所示:
https://ithelp.ithome.com.tw/upload/images/20240918/20168875a5GdOjCZQv.png
(截圖功能真好用XD)
使用這功能的時候還是要盡可能地靠近裝置跟收發的天線,否則還是會有可能會有很多雜訊或是被干擾。

Hopping between frequencies

這功能蠻好用的,我們可以在不知道頻率的情況下,啟用 Hopping 的功能,就會在特定的頻率間反覆跳躍,我們可以從 Read -> Config 去調整這個設定,如下圖:
https://ithelp.ithome.com.tw/upload/images/20240918/20168875kK6xvo955u.png
可以看到 Momentum 開啟 Hopping 的方式會順便調整他的閾值,開啟後也會看到上面的頻率消失,接著讀取的時候就會:
jump
圖片來源:https://images.app.goo.gl/dJ9XwKbZzgJcZrsK8
抱歉,我發現這功能之後就一直很想放這張圖XD

Bin_RAW

這個選項可以讓我們在讀取的時候消除背景雜訊,移除重複的訊號片段,自動修正一些錯誤。

Lock Keyborad

Flipper 提供我們在掃描訊號時鎖定我們的鍵盤,通常這個功能可能會用在長時間監聽訊號,而要避免誤觸的時候會用到。

Modulation configuration

在無線通信中,我們需要透過 modulation 把原始數據轉換成無線信號,這樣使得數據可以透過無線電波傳輸。而這過程通常是透過改變無線電波的某個屬性(如幅度、頻率或相位)來攜帶訊息。
而根據剛剛的說明我們可以把 modulation 用屬性歸類成兩種基本的類型,根據帶寬又可以再往下細分:

  • 幅度調制(Amplitude Modulation, AM):
    • AM270:此設置使用 270 kHz 的帶寬來進行幅度調製
    • AM650:此設置使用 650 kHz 的帶寬進行幅度調製,並且是 Flipper Zero 的默認設置。較寬的帶寬可以提供更好的信號質量和更穩定的數據傳輸。
  • 頻率調製(Frequency Modulation, FM):
    • FM238:使用 270 kHz 的帶寬和 2.380371 kHz 的頻率偏移來進行頻率調製。這種調製方式通過變化信號的頻率來編碼數據,對環境噪聲的抗干擾能力較強。
    • FM476:使用 270 kHz 的帶寬和 47.60742 kHz 的頻率偏移進行調製。更大的頻率偏移允許信號在更複雜的干擾環境下傳輸,但也可能需要更大的帶寬支持。

舉例像是平常車子內聽的電台就是 FM 87.5 MHz 到 108.0 MHz 的頻率段。
而因為 Flipper Zero 不是軟體定義的無線電(Software-Defined Radio,SDR),它無法自動識別和調整接收信號的調製方式。因此,在掃描之前,需要我們手動設置正確的調製模式。如果沒有事先設置正確的調製就無法正確地解調和記錄數據。

讀取流程參考

因為讀取方法很多,所以這邊舉一種參考。
如果我們的目標訊號是 Flipper 已知協議的話,我們可以透過 Read 來解析訊號,如果無法識別的話可以用 Read_RAW,如果懶得識別頻率可以先嘗試 Hopping:

  1. 首先我們可以透過 Frequency Analyzer 來偵測目標訊號的頻率

  2. 接著透過 Read 的 Config 去調整我們想收到的頻率,頻率表如下:
    range
    圖片來源:https://docs.flipper.net

  3. 接著就開讀
    read
    圖片來源:https://docs.flipper.net

  4. 如果成功捕捉到的話,可以透過判斷是否有鎖頭來確定是否有加密,沒有的話則可以儲存。
    save
    圖片來源:https://docs.flipper.net

Adding new remotes

這個功能讓我們可以手動添加一個虛擬的無線遙控器,直接與接受裝置配對,特別是當我們弄丟原本的遙控器時很實用。
而相比於單純的複製原本訊號,直接跟接收器配對可以讓我們在涉及到需要身份驗證或加密系統時可以讓新遙控器被接收裝置接受和信任。
使用這個功能我們需要先選擇正確的協議,詳細可以參考官方文件:
https://docs.flipper.net/sub-ghz/add-new-remote#3iGlU

Supported Sub-GHz vendors

vendors
圖片來源:https://docs.flipper.net
我們可以到官方文件看到 Flipper Zero 目前支援的裝置和廠商:
https://docs.flipper.net/sub-ghz/supported-vendors
他們也很鼓勵我們如果發現自己的裝置不在列表中可以去官方論壇留下裝置資訊,他們會盡可能地增加裝置覆蓋率。
那有趣的是,這邊官方特別提到:
https://ithelp.ithome.com.tw/upload/images/20240918/20168875m8vlXSOY4O.png
他說他們可以 decode dynamic 的訊號,只是基於安全原因不給你存而已,那既然韌體是開源的,我們有必要來看一下這部分怎麼寫的,這部分會在之後的文章帶大家深入討論。

Allowed Frequencies

儘管 Flipper Zero 可以接收範圍在 300-348 MHz、387-464 MHz 和 779-928 MHz 的所有頻率的信號。但是根據法律和規範,我們只能用它來發射民用許可頻率的信號,以防止干擾重要的通信服務(如緊急服務通信)。
而各地區的限制都有所不同,請各位詳閱官方這部分的文件以避免觸法:
https://docs.flipper.net/sub-ghz/frequencies
其中臺灣許可的發射頻率範圍在:

  • 304.50 - 321.95 MHz
  • 433.075 - 434.775 MHz
  • 915.00 - 927.95 MHz

如果確定發射的頻率在法律許可的範圍後,我們可以到下面的位置解鎖發射限制:
Momentum -> Protocols -> Sub-GHz Bypass Region Lock
https://ithelp.ithome.com.tw/upload/images/20240918/2016887599FWcn8e6N.png

按讚訂閱收藏小鈴噹叮叮叮

OK 今天的 Sub-GHz 基礎介紹大概就到這邊。
而大家有沒有想過如果我們可以用 Flipper Zero 複製隔壁鄰居的車子遙控器或是車庫鐵門,那我們是不是就能夠飛天遁地、橫行無阻、控制世界了。當然沒那麼簡單,但各位又會想,可是路邊的遙控器店老闆不是很輕鬆就能複製家裡的遙控器嗎?所以肯定還是有方法的嘛。沒錯,大家問的問題都很好,明天就會來跟各位揭曉這些問題的答案,請各位敬請期待!

References


上一篇
Day03 - 究竟是官方經典 Firmware 吸引人,還是社群高度客製化的版本令人嚮往
下一篇
Day05 - 連勞山道士都不會的 Sub-GHz 門禁破解術
系列文
Flipper Zero 宇宙最強攻略:30 天帶你從入門到入坑30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言